package almacenes.modelo.entidad;
// Generated 16/02/2012 04:45:02 PM by Hibernate Tools 3.4.0.CR1


import java.util.ArrayList;
import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Transient;
import javax.persistence.UniqueConstraint;

@Entity
@Table(name="PROVEEDOR"
    , uniqueConstraints = @UniqueConstraint(columnNames={"COD_PROVEEDOR_BBVA", "ID_TIPO_PROVEEDOR"}) 
)
public class Proveedor implements java.io.Serializable {

	 private static final long serialVersionUID = 1L;
	 private short idProveedor;
     private TipoProveedor tipoProveedor;
     private String codProveedorBbva;
     private String descProveedor;
     private String ruc;
     private String direccion;
     private String telefono;
     private Integer idEstadoMae;
     private String usuReg;
     private Date fecReg;
     private String usuAct;
     private Date fecAct;
     private String carpeta;

     private List<ProveedorProducto> proveedorProductos = new ArrayList<ProveedorProducto>();
	private List<Departamentoxproveedor> departamentoxproveedors = new ArrayList<Departamentoxproveedor>();
     private List<LoteGuias> loteGuiases = new ArrayList<LoteGuias>();


     private String sNombreEstado;

    public Proveedor() {
    }

	
    public Proveedor(short idProveedor, TipoProveedor tipoProveedor, Integer idEstadoMae) {
        this.idProveedor = idProveedor;
        this.tipoProveedor = tipoProveedor;
        this.idEstadoMae = idEstadoMae;
    }

    public Proveedor(short idProveedor, TipoProveedor tipoProveedor, String codProveedorBbva, String descProveedor, String ruc, String direccion, String telefono, Integer idEstadoMae, String usuReg, Date fecReg, String usuAct, Date fecAct, String carpeta, List<ProveedorProducto> proveedorProductos, List<Departamentoxproveedor> departamentoxproveedors, List<LoteGuias> loteGuiases) {

       this.idProveedor = idProveedor;
       this.tipoProveedor = tipoProveedor;
       this.codProveedorBbva = codProveedorBbva;
       this.descProveedor = descProveedor;
       this.ruc = ruc;
       this.direccion = direccion;
       this.telefono = telefono;
       this.idEstadoMae = idEstadoMae;
       this.usuReg = usuReg;
       this.fecReg = fecReg;
       this.usuAct = usuAct;
       this.fecAct = fecAct;
       this.carpeta = carpeta;
       this.proveedorProductos = proveedorProductos;
       this.departamentoxproveedors = departamentoxproveedors;
       this.loteGuiases = loteGuiases;
    }
   
     
    @Id 
    @Column(name="ID_PROVEEDOR", unique=true, nullable=false, precision=4, scale=0)
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SQ_PROVEEDOR")
 	@SequenceGenerator(name = "SQ_PROVEEDOR", sequenceName = "SQ_PROVEEDOR",allocationSize=1)
    public short getIdProveedor() {
        return this.idProveedor;
    }
    
    public void setIdProveedor(short idProveedor) {
        this.idProveedor = idProveedor;
    }

    @ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="ID_TIPO_PROVEEDOR", nullable=false)
    public TipoProveedor getTipoProveedor() {
        return this.tipoProveedor;
    }
    
    public void setTipoProveedor(TipoProveedor tipoProveedor) {
        this.tipoProveedor = tipoProveedor;
    }

    
    @Column(name="COD_PROVEEDOR_BBVA", length=8)
    public String getCodProveedorBbva() {
        return this.codProveedorBbva;
    }
    
    public void setCodProveedorBbva(String codProveedorBbva) {
        this.codProveedorBbva = codProveedorBbva;
    }

    
    @Column(name="DESC_PROVEEDOR", length=200)
    public String getDescProveedor() {
        return this.descProveedor;
    }
    
    public void setDescProveedor(String descProveedor) {
        this.descProveedor = descProveedor;
    }

    
    @Column(name="RUC", length=20)
    public String getRuc() {
        return this.ruc;
    }
    
    public void setRuc(String ruc) {
        this.ruc = ruc;
    }

    
    @Column(name="DIRECCION", length=200)
    public String getDireccion() {
        return this.direccion;
    }
    
    public void setDireccion(String direccion) {
        this.direccion = direccion;
    }

    
    @Column(name="TELEFONO", length=20)
    public String getTelefono() {
        return this.telefono;
    }
    
    public void setTelefono(String telefono) {
        this.telefono = telefono;
    }

    
    @Column(name="ID_ESTADO_MAE", nullable=false, precision=2, scale=0)
    public Integer getIdEstadoMae() {
        return this.idEstadoMae;
    }
    
    public void setIdEstadoMae(Integer idEstadoMae) {
        this.idEstadoMae = idEstadoMae;
    }

    
    @Column(name="USU_REG", length=10)
    public String getUsuReg() {
        return this.usuReg;
    }
    
    public void setUsuReg(String usuReg) {
        this.usuReg = usuReg;
    }

    @Temporal(TemporalType.DATE)
    @Column(name="FEC_REG", length=7)
    public Date getFecReg() {
        return this.fecReg;
    }
    
    public void setFecReg(Date fecReg) {
        this.fecReg = fecReg;
    }

    
    @Column(name="USU_ACT", length=10)
    public String getUsuAct() {
        return this.usuAct;
    }
    
    public void setUsuAct(String usuAct) {
        this.usuAct = usuAct;
    }

    @Temporal(TemporalType.DATE)
    @Column(name="FEC_ACT", length=7)
    public Date getFecAct() {
        return this.fecAct;
    }
    
    public void setFecAct(Date fecAct) {
        this.fecAct = fecAct;
    }

    
    @Column(name="CARPETA", length=50)
    public String getCarpeta() {
        return this.carpeta;
    }
    
    public void setCarpeta(String carpeta) {
        this.carpeta = carpeta;
    }
    
  @OneToMany(fetch=FetchType.LAZY, mappedBy="proveedor")  
    public List<ProveedorProducto> getProveedorProductos() {
		return this.proveedorProductos;
	}

    public void setProveedorProductos(List<ProveedorProducto> proveedorProductos) {
        this.proveedorProductos = proveedorProductos;
    }

@OneToMany(fetch=FetchType.LAZY, mappedBy="proveedor")
    public List<Departamentoxproveedor> getDepartamentoxproveedors() {
        return this.departamentoxproveedors;
    }
    
    public void setDepartamentoxproveedors( List<Departamentoxproveedor>  departamentoxproveedors) {
        this.departamentoxproveedors = departamentoxproveedors;
    }

@OneToMany(fetch=FetchType.LAZY, mappedBy="proveedor")
    public  List<LoteGuias>  getLoteGuiases() {
        return this.loteGuiases;
    }
    

    public void setLoteGuiases(List<LoteGuias>  loteGuiases) {
        this.loteGuiases = loteGuiases;
    }

    
    @Transient
	public String getsNombreEstado() {
		return sNombreEstado;
	}


	public void setsNombreEstado(String sNombreEstado) {
		this.sNombreEstado = sNombreEstado;
	}




}



